<?php

namespace App\Singleton\Classes;

class Redis
{
    private static $instance = null;
    //构造器私有化:禁止从类外部实例化
    private function __construct()
    { }
    //克隆方法私有化:禁止从外部克隆对象
    private function __clone()
    { }
    //因为用静态属性返回类实例,而只能在静态方法使用静态属性
    //所以必须创建一个静态方法来生成当前类的唯一实例
    public static function getInstance()
    {
        //检测当前类属性$instance是否已经保存了当前类的实例
        if (self::$instance == null) {
            //如果没有,则创建当前类的实例
            self::$instance = di(\Redis::class);
        }
        //如果已经有了当前类实例,就直接返回,不要重复创建类实例
        return self::$instance;
    }
}
